{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline\n",
    "plt.style.use('fivethirtyeight')\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一.简单理解数据\n",
    "很自然的我们首先需要知道数据的这些信息：   \n",
    "\n",
    "（1）字段含义；  \n",
    "\n",
    "（2）数据规模；  \n",
    "\n",
    "（3）字段类型；   \n",
    "\n",
    "（4）字段取值范围；  \n",
    "\n",
    "（5）饱和度；\n",
    "\n",
    "\n",
    "#### 字段含义\n",
    "对于本数据集，对应字段含义如下：   \n",
    "\n",
    "| Survived | Pclass | Name |Sex | Age | SibSp |Parch | Ticket | Fare | Cabin | Embarked |\n",
    "| ------ | ------ | ------ |------ | ------ | ------ |------ | ------ | ------ | ------ | ------ |\n",
    "| 0代表死亡，1代表存活 | 乘客所持票类 | 乘客姓名 |乘客性别 | 乘客年龄 | 乘客兄弟姐妹/配偶的个数 |乘客父母/孩子的个数 | 票号 | 乘客所持票的价格 | 乘客所在船舱 | 乘客登船港口:S、C、Q |   \n",
    "\n",
    "接下来读取数据看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_df=pd.read_csv('./titanic/train.csv')\n",
    "test_df=pd.read_csv('./titanic/test.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 数据规模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((891, 12), (418, 11))"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_df.shape,test_df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 字段类型\n",
    "\n",
    "通过对前几行数据的观测，我们大致可以知道数据的类型，以及其大致取值，那么我们可以对数据按**功能**和**字段类型**进行分类，   \n",
    "\n",
    "从功能上我们可以简单把数据分为两类，一类是离散型特征、一类是数值型特征：  \n",
    "\n",
    "（1）数值型特征：对**“比较大小”**有意义的特征，所以不一定非要数值类型的才能比较大小，比如对于收入“高”，“中”，“低”虽然是字符类型，但其实可以进行比较\n",
    "\n",
    "（2）离散型特征：当然就是无法比较的特征，比如对于爱好“篮球”，“足球”这些就不能比较，另外有些数值类型的特征比较也是没有意义的，比如下面的PassengerId这种id特征   \n",
    "\n",
    "所以我们可以将特征归到这样的一个表格中：   \n",
    "\n",
    "表现\\功能 | 离散型特征 |  数值型特征  \n",
    ":- | :-: | -:\n",
    "int,float | PassengerId,**Pclass** | Age,**Pclass**,SibSp,Parch,Fare \n",
    "str | Name,Sex,Ticket,Cabin,Embarked |  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Braund, Mr. Owen Harris</td>\n",
       "      <td>male</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>A/5 21171</td>\n",
       "      <td>7.2500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Cumings, Mrs. John Bradley (Florence Briggs Th...</td>\n",
       "      <td>female</td>\n",
       "      <td>38.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>PC 17599</td>\n",
       "      <td>71.2833</td>\n",
       "      <td>C85</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>Heikkinen, Miss. Laina</td>\n",
       "      <td>female</td>\n",
       "      <td>26.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>STON/O2. 3101282</td>\n",
       "      <td>7.9250</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>Futrelle, Mrs. Jacques Heath (Lily May Peel)</td>\n",
       "      <td>female</td>\n",
       "      <td>35.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>113803</td>\n",
       "      <td>53.1000</td>\n",
       "      <td>C123</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>Allen, Mr. William Henry</td>\n",
       "      <td>male</td>\n",
       "      <td>35.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>373450</td>\n",
       "      <td>8.0500</td>\n",
       "      <td>NaN</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   PassengerId  Survived  Pclass  \\\n",
       "0            1         0       3   \n",
       "1            2         1       1   \n",
       "2            3         1       3   \n",
       "3            4         1       1   \n",
       "4            5         0       3   \n",
       "\n",
       "                                                Name     Sex   Age  SibSp  \\\n",
       "0                            Braund, Mr. Owen Harris    male  22.0      1   \n",
       "1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female  38.0      1   \n",
       "2                             Heikkinen, Miss. Laina  female  26.0      0   \n",
       "3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female  35.0      1   \n",
       "4                           Allen, Mr. William Henry    male  35.0      0   \n",
       "\n",
       "   Parch            Ticket     Fare Cabin Embarked  \n",
       "0      0         A/5 21171   7.2500   NaN        S  \n",
       "1      0          PC 17599  71.2833   C85        C  \n",
       "2      0  STON/O2. 3101282   7.9250   NaN        S  \n",
       "3      0            113803  53.1000  C123        S  \n",
       "4      0            373450   8.0500   NaN        S  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看数据前几行\n",
    "train_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 字段取值范围  \n",
    "使用describe可以很方便"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PassengerId</th>\n",
       "      <th>Survived</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Age</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Fare</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>714.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "      <td>891.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.383838</td>\n",
       "      <td>2.308642</td>\n",
       "      <td>29.699118</td>\n",
       "      <td>0.523008</td>\n",
       "      <td>0.381594</td>\n",
       "      <td>32.204208</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>257.353842</td>\n",
       "      <td>0.486592</td>\n",
       "      <td>0.836071</td>\n",
       "      <td>14.526497</td>\n",
       "      <td>1.102743</td>\n",
       "      <td>0.806057</td>\n",
       "      <td>49.693429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.420000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>223.500000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>20.125000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.910400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>446.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>28.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>14.454200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>668.500000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>31.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>891.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>512.329200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       PassengerId    Survived      Pclass         Age       SibSp  \\\n",
       "count   891.000000  891.000000  891.000000  714.000000  891.000000   \n",
       "mean    446.000000    0.383838    2.308642   29.699118    0.523008   \n",
       "std     257.353842    0.486592    0.836071   14.526497    1.102743   \n",
       "min       1.000000    0.000000    1.000000    0.420000    0.000000   \n",
       "25%     223.500000    0.000000    2.000000   20.125000    0.000000   \n",
       "50%     446.000000    0.000000    3.000000   28.000000    0.000000   \n",
       "75%     668.500000    1.000000    3.000000   38.000000    1.000000   \n",
       "max     891.000000    1.000000    3.000000   80.000000    8.000000   \n",
       "\n",
       "            Parch        Fare  \n",
       "count  891.000000  891.000000  \n",
       "mean     0.381594   32.204208  \n",
       "std      0.806057   49.693429  \n",
       "min      0.000000    0.000000  \n",
       "25%      0.000000    7.910400  \n",
       "50%      0.000000   14.454200  \n",
       "75%      0.000000   31.000000  \n",
       "max      6.000000  512.329200  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#浮点数\n",
    "train_df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>Sex</th>\n",
       "      <th>Ticket</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>891</td>\n",
       "      <td>891</td>\n",
       "      <td>891</td>\n",
       "      <td>204</td>\n",
       "      <td>889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>unique</th>\n",
       "      <td>891</td>\n",
       "      <td>2</td>\n",
       "      <td>681</td>\n",
       "      <td>147</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>top</th>\n",
       "      <td>Roebling, Mr. Washington Augustus II</td>\n",
       "      <td>male</td>\n",
       "      <td>1601</td>\n",
       "      <td>B96 B98</td>\n",
       "      <td>S</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>freq</th>\n",
       "      <td>1</td>\n",
       "      <td>577</td>\n",
       "      <td>7</td>\n",
       "      <td>4</td>\n",
       "      <td>644</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                        Name   Sex Ticket    Cabin Embarked\n",
       "count                                    891   891    891      204      889\n",
       "unique                                   891     2    681      147        3\n",
       "top     Roebling, Mr. Washington Augustus II  male   1601  B96 B98        S\n",
       "freq                                       1   577      7        4      644"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#字符型\n",
    "train_df.describe(include=['O'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "B96 B98        4\n",
       "C23 C25 C27    4\n",
       "G6             4\n",
       "F2             3\n",
       "D              3\n",
       "Name: Cabin, dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#describe不能看到所有的取值，我们可以使用value_counts\n",
    "train_df['Cabin'].value_counts().head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 饱和度\n",
    "通过空值占比，可以了解字段的饱和度情况，有些字段虽然从含义看起来有用，但实际饱和度太低，依旧无法实现，避免开心太早~~~\n",
    "\n",
    "PS：注意，**某些字段的0值等价于空值**，比如身高、体重这样的标签，如果取值为0，其实和取值为空一样，没有提供有用信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PassengerId      0\n",
       "Survived         0\n",
       "Pclass           0\n",
       "Name             0\n",
       "Sex              0\n",
       "Age            177\n",
       "SibSp            0\n",
       "Parch            0\n",
       "Ticket           0\n",
       "Fare             0\n",
       "Cabin          687\n",
       "Embarked         2\n",
       "dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_df.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二.数据可视化\n",
    "\n",
    "数据可视化是帮助我们进一步理解数据的有用工具，可以让我们很直观的感受一些指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19a67c49c18>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#存活分布:没有明显的不平衡\n",
    "train_df[\"Survived\"].value_counts().plot(kind='bar')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19a69cf2da0>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAADnCAYAAADSMxt4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGxVJREFUeJzt3XmYXFWd//H3N5WEEEgIEJbIIiCQhxIyNEYIshgRHBCEFoWRn8JPncFhMVDDogbIKMOiLI5X/SGiDozCKIijxaKALIGE0CRpUlnIzULIQkIgQEL2pdPV5/fHrZBO6CRd3ffWqbr1eT3Pfbor3an6dPI89elz7rnnmnMOERGROPXwHUBERNJH5SIiIrFTuYiISOxULiIiEjuVi4iIxE7lIiIisVO5iIhI7FQuIiISO5WLiIjETuUiIiKxU7mIiEjsVC4iIhI7lYuIiMRO5SIiIrFTuYiISOxULiIiEjuVi4iIxE7lIiIisVO5iIhI7FQuIiISO5WLiIjETuUiIiKxU7mIiEjsVC4iIhI7lYtgZsPN7HHfOUQkPVQuIiISO5VLSpjZQWY208x+Y2avmtn/mNmpZjbOzF4zs2NLx0tmVih9HNzB8+xiZvea2cTS953j4+cRkdrW03cAidWhwHnAt4CJwP8BTgTOBq4DLgJOds61mtmpwK3Al7Z6juuB55xz3zSzAcAEM3vGObemUj9EJVgQ7gz0B3Ztd/Tr4uOdgDagCLRu5+MGYC2wrvSx/bHpz1YBbwNvAYuBxS6XXZfUv4NIUlQu6TLPOTcNwMymA88655yZTQMOAnYDfmtmhwEO6NXBc3wOONvMrik97gMcCMxIOnycLAgHAh8l+rk7+ribp2hlsyBcTqloaFc6Wx1vuVx2g7eQIltRuaRL+zeXtnaP24j+r28CRjvnvmhmBwHPd/AcBnzJOTcruZjdY0FowL5EJdFRcXwU2MVTvCQMKB3Z7X2TBeEytiycBcC00jHH5bJtCecU+YDKpb7sBrxZ+vzr2/iep4ARZjaiNOppcM4VKpKuAxaEBwBDS0cD0dTfgURTUbKlPUrHkR18ba0F4XSiopm66XC57NIK5pM6onKpL7cTTYtdBTy3je+5CQiAqWZmwHzgrEqEsyD8CJuLZCjwCWDvSrx2HegLfLJ0fMCC8C2iomlfOjNcLttS8YSSKuac851B6pAF4T58uEgGeQ0lm7QCs9hcOgVgnMtlV3lNJTVF5SKJsyDcAziWLYtkf6+hpFytwCtEI97RRGWz1m8kqWYqF4mdBWFv4ASilWefIzpXYl5DSdxagPFERTMaaNJqNWlP5SKxsCA8gs1l8mnStVpLdmw98BKby2aCy2U3+o0kPqlcpEssCPsCpwJnAqcTreAS2WQV0crDR4C/ulz2fc95pMJULtJpFoR7A18EzgE+Q3SBpciOtAJjiYrmEZfLzvcbRypB5SLbZUG4J9EWMecDw4GM10CSBlOJiuZPLped6juMJEPlIh9iQbg7cC5RoZyCroeS5ITAH4A/uFz2dd9hJD4qFwE+WOF1DtGV+6fR8b5jIkl6GbgfeNDlsst8h5HuUbnUOQvCjwP/DFwIDPQcRwSiZc5/A+4jWgxQ9JxHukDlUocsCHcFvgL8C3Cc5zgi2/MG8CvgNy6XXeI7jHSeyqWOWBAeBVxBVCy7eo4jUo6NwF+Au10u+7znLNIJKpeUK21Pfwbwb0TXpYjUuhnAL4H7tN9Z9VK5pFTpTosXAjngCM9xRJKwHLgbCFwu+47vMLIllUvKlC50HAFcgk7QS31YT3Ty/w6Xy87zHUYiKpeUsCDcC7gWuJzo3h0i9aYIPAT8yOWy03yHqXcqlxpXuoL+WuDbaLNIkU0eA65XyfijcqlRpXukXE00BdbPcxyRatQG/B74d02XVZ7KpcaUTtRfS1Qs/T3HEakFLcA9wM068V85KpcaYkF4AXAbcIDvLCI1aDXwE6IT/1rCnDCVSw2wIBwK/BT4lO8sIimwBLjW5bL3+w6SZiqXKmZBOAj4IXARuk2wSNzGAJe7XPZV30HSSOVShSwIM8CVwI1omxaRJLUSzQr8wOWyq32HSROVS5Up7VJ8L3Cs7ywideRN4GqXyz7kO0haqFyqhAVhL2AkcD3Q23MckXr1GHCxdmDuPpVLFSidsP8vYIjvLCLCe8C/ulz2z76D1DKVi0cWhD2Jzqt8F92bXqTa3A+McLnsCt9BapHKxRMLwgOJ7h2u5cUi1Wsh8A2Xyz7rO0itUbl4YEF4DtEurrv7ziIiO+SAO4GRuuVy56lcKsiCsDdwB9HdIEWktowG/snlsu/6DlILVC4VYkF4CPBH4BO+s4hIly0Cvuxy2fG+g1S7Hr4D1AMLwlOAiahYRGrd/sAYC8JLfAepdhq5JMyC8FLgZ0BP31lEJFb3AZe4XLbFd5BqpHJJiAVhD+A/ibZxEZF0eg74ostlV/oOUm1ULgmwIOxLdJOic3xnEZHETQbOcLns276DVBOVS8wsCHcHngCO851FRCpmPvCPLped7TtItdAJ/RiV7mf/HCoWkXpzEDDOglAbzpaoXGJiQbg30Tr4o31nEREvBgKjLQg/6ztINdC0WAwsCPclGrEc4TuLiHi3FjjL5bKjfQfxSeXSTRaE+xEVy+G+s4hI1VhLdJJ/jO8gvqhcusGCcCDwEnCY7ywiUnVWAae4XLbZdxAfdM6liywIdya6sZCKRUQ60g940oIw6zuIDyqXLihdIPl7YJjvLCJS1fYE/m5BOMh3kEpTuXTNT4FG3yFEpCbsB/zFgrCP7yCVpHIpkwXhNcC3fecQkZpyHPBr3yEqSSf0y2BBeDrwN8B8ZxGRmvRdl8ve7jtEJahcOqm05Hgy0YVSIiJd0Qac43LZx30HSZrKpRMsCDNEV9+f5DuLiNS8lcAQl8su8B0kSTrn0jk3omIRkXj0B35XWnWaWqn+4eJgQXgaMNJ3DhFJlZOBq3yHSJKmxbbDgnA3YAZQd2vURSRxG4BPulx2mu8gSdDIZftuRcUiIsnYCbjfgrC37yBJULlsQ+m+DJf4ziEiqfYPwHW+QyRB02IdKK0Omwg0+M4iIqm3DhjsctmFvoPESSOXjl2BikVEKmNn4Ie+Q8RNI5etWBDuBbxOtKOpiEglOOB4l8uO9x0kLhq5fNi1qFhEpLIM+InvEHHSyKWd0qhlHrCL7ywiUpfOd7nsw75DxEEjly1dg4pFRPz5nu8AcdHIpaR0y+L5qFxExK/PuFz2ed8huksjl82uQsUiIv5d7TtAHDRyASwIewGLgL19ZxGRuueArMtlZ/oO0h0auUTORMUiItXBgH/zHaK7VC6Rb/oOICLSzgUWhH18h+iOui8XC8J9gTN85xARaacf8I++Q3RH3ZcLcCHQ03cIEZGtnO87QHeoXODLvgOIiHTgC7U8NVbX5WJBOAAY6juHiEgH+gGn+w7RVXVdLsAp6N9ARKrX2b4DdFW9v7Ge5juAiMh2fMp3gK6q93I51XcAEZHtONyCcA/fIbqibsvFgvAA4FDfOUREtsOAYb5DdEXdlgtwtO8AIiKdoHKpMUf6DiAi0gnpLhczO3wbf35CfHEqKus7gIhIJxzmO0BXlDNyGW9ml256YGa9zOw24M/xx6oInW8RkVrwEQtC8x2iXOWUy3DgEjP7q5l9FmgGhlC75y4+5juAiEgn9Ab28R2iXJ0uF+fcFOA44ADg78BE59wZzrm3kgqXFAvCDLCX7xwiIp20v+8A5SrnnMt+wONAC3AlcI6Z3Wpmtbjpo+44KSK15ADfAcpVzrTYZKAJGOac+39E02FDiabHas2uvgOIiJSh5m5mWM6o42znXNOmB865N4HPmdkV8cdKnEYuIlJLevsOUK5yzrk0AZjZAWY2rN2f/yyJYAnTyEVEaknNnX7odGAzOxD4A9F0mAN2NbMvA6c75/4loXxJqdl7JEj1umv2vS9cvPi5j1PfFydLAtZkehfJvew7RlnKacN7gL8CJwFLS3/2NPDjuENVwBrfASQ9+rWuWzWx+fpXD12/5NO+s0g69StucL4zlKuccjkWONM512ZmDsA5t8LMdksmWqLe9x1A0uGYVXNfGzvpxp47udbjfWeRVGvxHaBc5Qzfl7DVVe1mlgXeiDVRZahcpNu+88aj48a/Mmq/nVzrwb6zSOqt8B2gXOWUy53A42b2DaCnmV0APATclkiyBLlcdjXQ6juH1Kbeba0tL076/thb5z50gkFf33mkLizwHaBcnZ4Wc87da2bLgG8BC4GLgBucc48kFS5hy4GBvkNIbTlk3ZJFzc3XrexfXH+S7yxSV2quXHY4cjGzT5jZkQDOuTzwdWAKsB/weTOr1WW9i3wHkNpywZJxzTPHX923f3G9dtSWSmoBam6brc5MiwXAvu0e/4ro3Ms9wMeB2xPIVQnTfAeQ2mCure2h6T994XczfnFMD1xN3nJWatqiTL6QytViRwBjAcxsAHAm8HHn3GwzexR4CbgsuYiJedV3AKl+A1tWLis0j5w7qGW5lhmLLzU3JQadG7n0ZPMyuGHAW8652QDOuYXAgISyJU0jF9mu4e+H0xc2Xb5uUMvyob6zSF0LfQfois6Uy3TgvNLnXwGe2fSF0k7JNbdErkTlItt0x5wHxjw95ZbDerm2/Xxnkbo3xneArjDntj+VZ2YnAo8RbflSBE50zs0qfe0q4Djn3D8lHTQJFoTvAXv6ziHVY5fi+jUvvzJq8hFrF9fq7bslfQZl8oW3fYco1w7PuTjnXiztK3Y4MNs5t6rdl/8KPJhUuAp4BqjJYpT4Hbl64bymSaOKO7dtVLFItZhTi8UCnbyI0jm3yjn3ylbFgnNulnNucTLRKuIJ3wGkOly+6KmmQvP3Bu7ctvHQHX+3SMXU5JQY1OA2zjF7kmi6z3wHET96tbVufGLqj5qGL59xsu8sIh2o2XKp663BXS67BJjkO4f4sf/6pW8vfunSGSoWqVJF4CnfIbqqrsulRFNjdajx3YmF11++MrN769ohvrOIbMPTtXq+BVQuEG2+KfXCOXffjLuff3h6MCSD28t3HJHt+J3vAN2xw6XI9cCC8CVA9+NIuQEb16yY1Dxy1oEblh7rO4vIDqwC9snkC+t8B+kqjVwi9/gOIMk6fsXsmYtfunSFikVqxP/WcrGAymWTPxJtwS8p9P15f3pxTOHGg3q74oG+s4h0Uk1PiYHKBQCXy64D7vedQ+LVp9iyfkLz9WNHLfjLiQZ9fOcR6aSpwPO+Q3SXymWzXwBtvkNIPAavXbxgybhLFhyzer5u6iW15uZa3GJ/ayqXEpfLzgT+4DuHdN833ho9YdqEawfs0rZhsO8sImWaDvzJd4g41PsV+lv7PtFeY/p3qUE9XFsxP+3OsWcsm/Jp064LUptuScOoBTRy2YLLZV8H7vOdQ8q374b3333zpcumfX7ZlOEqFqlRs0jRdXcqlw+7CdjgO4R03ulLJ09d0DSiuNfGVUf7ziLSDTdn8oXUnPdVuWzF5bILgbt955DOuWv2vS88Nu2ObAa3r+8sIt3wIvA/vkPESVfod8CCsD/RrUV1F8Iq1a913aqJzde/euj6JdpZQWrdRqAhky9M9x0kThq5dMDlsiuBy3znkI4ds2rua2+Pu+Q9FYukxI/TViygctkml8s+SkqWBKbJd954dNz4V0btt5NrPdh3FpEYzAX+w3eIJGjJ7fZ9G/gssLvvIPWud1try3OTbxo/bOUcXRQpaXJ5re8hti0auWxH6WZi1/jOUe8OWbdk0dvj/nWOikVS5v5MvvCk7xBJUbnsgMtl7wX+4jtHvbpgybjmmeOv7tu/uD7rO4tIjELgUt8hkqRpsc75JnA0oHn+CjHX1vZg+POx57474STTL0GSLmuA8zL5whrfQZKkpcidZEH4SWAssJPvLGk3sGXlskLzyLmDWpYP9Z1FJAFfy+QLqbqmpSP6jbCTXC47ERjhO0faDX8/nL6w6fJ1KhZJqV/VQ7GAyqUsLpf9NfBr3znS6o45D4x5esoth/Vybbp4VdKoAFzhO0Sl6JxL+S4HDgJO85wjNXYprl/z8iujJh+xdvHJvrOIJGQBcFYmX6ibfQt1zqULLAh3BUYDmrrppiNXL5zXNGlUcee2jYf6ziKSkPeAEzP5wizfQSpJ02Jd4HLZ1cDngdd8Z6llly96qqnQ/L2BKhZJsTXAmfVWLKCRS7dYEB4MvARoR94y9Gpr3fjE1B81DV8+Q9NgkmYbgS9k8oWnfAfxQeXSTRaE/wC8AOzmO0st2H/90rcLzd97Z/fWtUN8ZxFJkCNacvx730F80bRYN7lcdgpwKrDMd5Zq1/juxMLrL1+ZUbFIyjngsnouFtDIJTYWhEcBTwP7+M5SdZxz98385QtfW/LiSQYZ33FEElQE/jmTL/zWdxDfVC4xsiA8DHgWOMB3lmoxYOOaFZOaR846cMPSY31nEUnYRqKpsD/6DlINVC4xsyD8KPAMUPcroI5fMXvms5Nv7tvbFQ/0nUUkYWuAL6d5l+NyqVwSYEE4CHgSqNtzCzfOe/jF6xbkhxr08Z1FJGFLiZYbj/cdpJqoXBJSutDyAeAc31kqqU+xZf2Ywo0Tj1k9X/dekXowh2i58UzfQaqNyiVBFoQG3AKM9J2lEgavXbxgQvMN63dp2zDYdxaRCngSuCCTLyz3HaQaqVwqwILwq8BvSPEU0TfeGj3hnlm/GdxD1/tIfbgNuC6TL7T5DlKtVC4VYkF4HJAnZVfz93Btxfy0O8eesWzKpw3Mdx6RhK0FvpnJFx7yHaTaqVwqyILwI0TnYT7jO0sc9t3w/ruF5pFv7rVx1dG+s4hUwHygMZMvTPEdpBboCv0KcrnsYqKr+a8HWj3H6ZbTl06euqBpRFHFInXiEWCoiqXzNHLxxIJwGPB74GDfWcp11+x7X/jW4mdPMN0PSNJvNXBlJl+413eQWqNy8ciCsD9wD/AV31k6o1/rulUTm69/9dD1S473nUWkAsYBF2Xyhbm+g9QilUsVsCC8CAiA3X1n2ZZjVs19beykG3vu5FprbqQlUqaNwA+A2zL5QtFzlpqlcqkSFoT7AD8DzvedZWvfeePRcbfMfajBoK/vLCIJm0G0P9gk30FqncqlylgQngX8girY/LJ3W2vLc5NvGj9s5RxdbS9pt47oguc7MvlCi+8waaByqUIWhP2AW4HL8LSi75B1SxY1N1+3sn9xfdbH64tU0GPAFZl8Yb7vIGmicqliFoTHA3cBDZV83QuWjGv+7Yy7D+mB26OSrytSYfOJSuUx30HSSOVS5SwIewAXEQ3ZP5Loa7m2tgfDn489990JJ5mugZL0agHuAG7J5AvrfIdJK5VLjbAg7At8B7iWBE6sD2xZuazQPHLuoJblQ+N+bpEq4YD/JdoT7DXfYdJO5VJjSlvI3EI0molldDH8/XD6E1N/OKCXa9svjucTqUJ/JyqVV3wHqRcqlxplQdgA/AdwVnee5445D4zJLXpimEHveJKJVJXxwMhMvjDad5B6o3KpcRaExwD/Tpk3JduluH7Ny6+MmnzE2sUnJJNMxKvpwA2ZfCHvO0i9UrmkhAXh0UQl08gOtr4/cvXCeU2TRhV3btt4aEXCiVTOFOB24EHda8UvlUvKWBAOAUYBX6KDkrl80VNNwZzfHWnQr+LhRJLzLNEFkE/5DiIRlUtKWRAOBq4E/i/Qt1db68Ynpv6oafjyGSd7jiYSlyLwJ+B2bddSfVQuKWdBuAdw8fymEafuv2HZqb7ziMRgLXAv8J+ZfGGe7zDSMZVLnSg2NvQkOh/zbeDTnuOIdMWrwK+B+zP5wvu+w8j2qVzqULGx4SjgEqL7yGiLF6lma4E/Ar/K5AtNvsNI56lc6lixsWEn4AvA14HTgYzXQCKbTSEapTyQyRdW+A4j5VO5CADFxoZ9ga8RLQA40nMcqU/vEJ2g/20mX5jgO4x0j8pFPqTY2PAJopI5H9jHcxxJt2XAn4GHgNG682N6qFxkm4qNDT2ATwHnAl8EDvIaSNJiJfAI8CDwdCZf2Og5jyRA5SKdVmxsOIaoaM4FjvAcR2rLUuAJolHK3zL5wgbPeSRhKhfpkmJjw2CikjkTOA7o6TeRVKHpwONEd3ps0nYs9UXlIt1WbGzoDwwHTisdg70GEl9WAM8ATwJPZfKFhZ7ziEcqF4ldsbHhAOBUoqI5FdjLbyJJyEpgHDCmdEzI5AutfiNJtVC5SKKKjQ0GHEW0MGAYcDxwuNdQ0lXvAGOJimQsMEVTXbItKhepuGJjw55sLprjgWOBXb2Gkq21EJ0zmUR0w60xmXxhVpwvYGZXAJcCk5xzX43zuUvP/wNgtXPuzrifW3ZM5SLeFRsbMkQXbg4FhhCNdIYAe/rMVUfWAVOJimTT8WomX2hJ8kXNbCZwhnMukc0nVS5+aYWPeFe6cG5K6fhAsbFhEFuWzVFES6B3qnTGlNgAvA7MKh0hUZHMrPTFi2b2S+AQ4FEzexD4GNH/b0/gB865R8zs60SbrW765ePHRLfjvrD0s3zeObfMzC4GvlX62hzgQufc2q1e72PAXUTn/9YCFzvnZib+g9YxjVykppR2dz6Y6I3pEKI3pfYf6316zQGL2Vwgs9t9vqCaroA3s/lEo9WrgNA594CZDQAmAA3AecANpc/7EBXHd51zvzSznwALnHOBme3pnFtaes6bgSXOuZ+3H7mY2bPAJc6518zsOOCHzrlTKvsT1xeNXKSmlFYjvVY6PqTY2LA3m8vmQGDfrY59gN0qEjZ+bcDbwKJ2x8KtHi9OejorAZ8Dzjaza0qP+xD93wGMds6tAlaZ2Qqia2YAphGNZgGOLJXKAKJfLra4G6WZ7Uq0oORhsw9uzqrRb8JULpIqmXzhHaJVTS9v63uKjQ192LJw9iYqnK2PfsAuRG9Yu5Y+7000TdP++NDtpLeyod2xvoPHy4H3ifbZ2t7H91K61NeALznntlgwUBphtL+Sv63d4zY2v3/9N9DonJtSmkobvtXz9wCWO+eOjje2bI/KRepOJl9YD8wvHd1WWm7dky0LB6I3wpZMvqC55+17ChhhZiOcc87MGpxzhTL+fj/gLTPrBXwVeLP9F51zK81snpmd55x72KLhyxDn3JSOnkzioXIR6aZSeWwsHVK+m4AAmFp6458PnFXG3x9FtFx6AdF0Wb8OvuerwN1mdgPQi2jTTJVLgnRCX0REYtfDdwAREUkflYuIiMRO5SIiIrFTuYiISOxULiIiEjuVi4iIxE7lIiIisVO5iIhI7FQuIiISO5WLiIjETuUiIiKxU7mIiEjsVC4iIhI7lYuIiMRO5SIiIrFTuYiISOxULiIiEjuVi4iIxE7lIiIisVO5iIhI7FQuIiISO5WLiIjETuUiIiKxU7mIiEjsVC4iIhI7lYuIiMTu/wPcUIGBspBa4QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#性别分布\n",
    "train_df['Sex'].value_counts().sort_values(ascending=False).plot(kind='pie')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19a69d45358>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#年龄分布，直方图\n",
    "train_df['Age'].plot(kind='hist')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19a69e2d828>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#相关性分布\n",
    "sns.heatmap(train_df.corr())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以发现是否存活与Fare/票价的正相关性最强，与Pclass负相关性最强"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
